package com.wlyuan.open.domain.service.yuhong;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author
 * 东方雨虹签收请求
 */
@Data
public class YuHongSignRequest {

    @ApiModelProperty(value = "订单合同号")
    private String pactCode;

    @ApiModelProperty(value = "订单状态")
    private String statusName;

    @ApiModelProperty(value = "发货方名称")
    private String customerName;

    @ApiModelProperty(value = "发货联系人")
    private String fromMan;

    @ApiModelProperty(value = "发货方联系电话")
    private String fromContact;

    @ApiModelProperty(value = "发货时间")
    private Date fromTime;

    @ApiModelProperty(value = "收货方名称")
    private String endUserName;

    @ApiModelProperty(value = "收货联系人")
    private String toMan;

    @ApiModelProperty(value = "收货人联系电话")
    private String toContact;

    @ApiModelProperty(value = "收货时间")
    private Date toTime;

    @ApiModelProperty(value = "签收类型")
    private String signTypeName;

    @ApiModelProperty(value = "签收时间")
    private Date signTime;

    @ApiModelProperty(value = "物品总数量")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "签收总数量")
    private BigDecimal signTotalAmount;

    @ApiModelProperty(value = "签收异常总数量")
    private Integer signExTotalAmount;

    @ApiModelProperty(value = "回单总数量")
    private BigDecimal receiptTotalAmount;

    @ApiModelProperty(value = "回单异常总数量")
    private BigDecimal receiptExTotalAmount;

    @ApiModelProperty(value = "签收说明")
    private String signDesc;

    @ApiModelProperty(value = "回单说明")
    private String receiptDesc;

    @ApiModelProperty(value = "发货地址")
    private String fromAddress;

    @ApiModelProperty(value = "收货地址")
    private String toAddress;

    @ApiModelProperty(value = "订单回传信息")
    private Map<String,Object> echo;

    @ApiModelProperty(value = "物品详情")
    private List<SignGoodDetail> details;

    @Data
    public class SignGoodDetail {

        @ApiModelProperty(value = "物品名称")
        String name;

        @ApiModelProperty(value = "规格")
        String spc;

        @ApiModelProperty(value = "货物数量")
        BigDecimal amount;

        @ApiModelProperty(value = "实签数量")
        BigDecimal signAmount;

        @ApiModelProperty(value = "签收异常分类")
        String signExTypeName;

        @ApiModelProperty(value = "签收异常数量")
        BigDecimal signExAmount;

        @ApiModelProperty(value = "签收物品异常描述")
        String signExDesc;

        @ApiModelProperty(value = "回单实签数量")
        BigDecimal receiptAmount;

        @ApiModelProperty(value = "回单异常数量")
        BigDecimal receiptExAmount;

        @ApiModelProperty(value = "回单异常分类")
        String receiptExTypeName;

        @ApiModelProperty(value = "回单异常描述")
        String receiptExDesc;

        @ApiModelProperty(value = "物品回传信息")
        private Map<String, Object> echo;
    }

}
